import 'package:built_collection/built_collection.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:website.core/core/application/blocs/app_navigator_bloc/models/page_models/account_page_model.dart';
import 'package:website.core/core/domain/entities/web/web_bank_card_type.dart';
import 'package:website.core/core/domain/entities/web/web_payment_method.dart';
import 'package:website.core/core/domain/entities/web/web_payment_method_failure.dart';
import 'package:website.core/core/presentation/helpers/markdown_builder.dart';
import 'package:website.core/core/presentation/theme/theme.dart';
import 'package:website.core/core/presentation/utils/icons/custom_regular_icons.dart';
import 'package:website.core/core/presentation/widgets/app_button.dart';
import 'package:website.core/core/presentation/widgets/app_loader.dart';
import 'package:website.core/core/presentation/widgets/delayed_widget.dart';
import 'package:website.core/core/presentation/widgets/stateful_wloc.dart';
import 'package:website.core/core/presentation/widgets/wloc_builder.dart';
import 'package:website.home.account/injection_container.dart' as account_di;
import 'package:website.home.account/payment_method_fragment/application/bloc.dart';
import 'package:website.home.account/payment_method_fragment/presentation/localization/translation.dart';
import 'package:website.home.account/payment_method_fragment/presentation/theme/theme.dart';

part 'view.dart';

part 'view_0_600.dart';

part 'view_600_900.dart';

part 'view_900_infinity.dart';

part 'widgets/divider.dart';

part 'widgets/editing_button.dart';

part 'widgets/editing_completion_button.dart';

part 'widgets/payment_method_removal_button.dart';

part 'wloc.dart';

part 'wloc_state.dart';

part 'wloc_state_factory.dart';

class PaymentMethodFragment extends StatefulWidget {
  const PaymentMethodFragment({
    required this.fragmentModel,
    required this.width,
    Key? key,
  }) : super(key: key);

  final PaymentMethodAccountPageFragmentModel fragmentModel;
  final double width;

  @override
  State<PaymentMethodFragment> createState() => _PaymentMethodFragmentWloc();
}
